/**************************************************************************\
    Copyright Microsoft Corporation. All Rights Reserved.
\**************************************************************************/

namespace Microsoft.ContactsBridge
{
    using System;
    using System.Collections.Generic;
    using System.Text;

    public interface ILabeledPropertyCollection<T> : IList<T>
    {
        T Default
        {
            get;
            set;
        }

        int DefaultIndex
        {
            get;
            set;
        }

        ILabelCollection GetLabelsAt(int index);

        int IndexOfLabels(params string[] labels);

        T this[string label] { get; set; }

        T this[string label1, string label2] { get; set; }

        T this[string label1, string label2, string label3] { get; set; }

        T this[params string[] labels] { get; set; }

        void Add(T item, params string[] labels);
    }
}
